<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>题目2</title>
</head>

<body>

    <!-- 实现超出整数存储范围的两个大正整数相加 function add(a, b) 。注意：参数 a 和 b 以及函数的返回值都是字符串。 -->
</body>
<script>
    function add(a, b) {
        const aArr = a.split('')
        const bArr = b.split('')
        const minArr = aArr.length <= bArr.length ? aArr : bArr
        const maxArr = aArr.length > bArr.length ? aArr : bArr
        let flag = 0
        let tmpArr = []
        // for (let i = minArr.length - 1; i >= 0; i--) {
        //     let sum = minArr[i] * 1 + maxArr[maxArr.length - 1] * 1 + flag * 1
        //     maxArr.pop()
        //     if (sum > 9) {
        //         tmpArr.unshift(sum % 10)
        //         flag = parseInt(sum / 10)
        //     } else {
        //         tmpArr.unshift(sum)
        //         flag = 0
        //     }
        // }
        // for (let i = maxArr.length - 1; i >= 0; i--) {
        //     const sum = maxArr[i] * 1 + flag * 1
        //     if (sum > 9) {
        //         maxArr[i] = sum % 10
        //         flag = parseInt(sum / 10)
        //     } else {
        //         maxArr[i] = sum
        //         flag = 0
        //     }
        // }

        while (maxArr.length) {
            let sum = maxArr.pop() * 1 + (minArr.pop() * 1 || 0) + flag * 1
            if (sum > 9) {
                tmpArr.unshift(sum % 10)
                flag = parseInt(sum / 10)
            } else {
                flag = 0
                tmpArr.unshift(sum)
            }
        }
        if (flag) {
            maxArr.unshift(flag)
        }
        return maxArr.concat(tmpArr).join('')
    }

    console.log(add('1', '9'))

    const a = Promise.resolve(4)
</script>

</html>